/// *
// * 文件名：RequestWrapper.java
// * 版权：MoonBox
// * 修改人：Peter
// * 修改时间：2018年10月8日
// * 修改内容：新增
// */
// package com.renzhebiao.lkang.request;
//
// import java.io.BufferedReader;
// import java.io.ByteArrayInputStream;
// import java.io.ByteArrayOutputStream;
// import java.io.IOException;
// import java.io.InputStream;
// import java.io.InputStreamReader;
// import java.nio.charset.Charset;
//
// import javax.servlet.ReadListener;
// import javax.servlet.ServletInputStream;
// import javax.servlet.ServletRequest;
// import javax.servlet.http.HttpServletRequest;
// import javax.servlet.http.HttpServletRequestWrapper;
//
// import lombok.extern.log4j.Log4j;
//
/// **
// * TODO 添加类的一句话简单描述。
// * <p>
// * TODO 详细描述
// *
// * @author Peter
// * @since 1.0.0
// */
// @Log4j
// public class RequestWrapper extends HttpServletRequestWrapper {
//
// private final ByteArrayOutputStream bos = new ByteArrayOutputStream();
// private final byte[] body;
// private long id;
//
// public RequestWrapper(Long requestId, HttpServletRequest request) {
// super(request);
// this.id = requestId;
// body = getBodyString(request).getBytes(Charset.forName("UTF-8"));
//
// }
//
// @Override
// public BufferedReader getReader() throws IOException {
// return new BufferedReader(new InputStreamReader(getInputStream()));
// }
//
// @Override
// public ServletInputStream getInputStream() throws IOException {
//
// // 这里从body里面直接读了，没有去读inputStream了，很巧妙的方式
// final ByteArrayInputStream bais = new ByteArrayInputStream(body);
//
// return new ServletInputStream() {
//
// @Override
// public int read() throws IOException {
// return bais.read();
// }
//
// @Override
// public boolean isFinished() {
// return false;
// }
//
// @Override
// public boolean isReady() {
// return false;
// }
//
// @Override
// public void setReadListener(ReadListener readListener) {
//
// }
// };
// }
//
// public String getBodyString(ServletRequest request) {
// StringBuilder sb = new StringBuilder();
// InputStream inputStream = null;
// BufferedReader reader = null;
// try {
// inputStream = request.getInputStream();
// reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8")));
// String line = "";
// while ((line = reader.readLine()) != null) {
// sb.append(line);
// }
// } catch (IOException e) {
// log.warn("处理异常", e);
// } finally {
// if (inputStream != null) {
// try {
// inputStream.close();
// } catch (IOException e) {
// log.warn("处理异常", e);
// }
// }
// if (reader != null) {
// try {
// reader.close();
// } catch (IOException e) {
// log.warn("处理异常", e);
// }
// }
// }
// return sb.toString();
// }
//
// public byte[] toByteArray() {
// return bos.toByteArray();
// }
//
// public long getId() {
// return id;
// }
//
// public void setId(long id) {
// this.id = id;
// }
//
// }
